Crate wgpu_hal

source ·
Expand description

This library describes the internal unsafe graphics abstraction API. It follows WebGPU for the most part, re-using wgpu-types, with the following deviations:

  • Fully unsafe: zero overhead, zero validation.
  • Compile-time backend selection via traits.
  • Objects are passed by references and returned by value. No IDs.
  • Mapping is persistent, with explicit synchronization.
  • Resource transitions are explicit.
  • All layouts are explicit. Binding model has compatibility.

General design direction is to follow the majority by the following weights:

  • wgpu-core: 1.5
  • primary backends (Vulkan/Metal/DX12): 1.0 each
  • secondary backends (DX11/GLES): 0.5 each

Modules

Structs

BindGroup descriptor.
BindGroupLayout descriptor.
Pipeline layout creation flags.
Similar to wgt::BufferUsages but for internal use.
Describes a compute pipeline.
Texture format capability flags.
Instance initialization flags.
Naga shader module.
Pipeline layout creation flags.
Describes a programmable pipeline stage.
Describes a render (graphics) pipeline.
Describes information about what a Surface’s presentation capabilities are. Fetch this with Adapter::surface_capabilities.
Texture format capability flags.
Similar to wgt::TextureUsages but for internal use.
TextureView descriptor.
Flag for internal testing.
Describes how the vertex buffer is interpreted.

Enums

Constants

Size of a single occlusion/timestamp query, when copied into a buffer, in bytes.

Statics

Stores if any API validation error has occurred in this process since it was last reset.

Traits

Encoder for commands in command buffers. Serves as a parent for all the encoded command buffers. Works in bursts of action: one or more command buffers are recorded, then submitted to a queue, and then it needs to be reset_all().

Type Definitions